#include <bits/stdc++.h>
using namespace std;

const int N = 2e5+5;

int a[N];

int b[N], outcome[N], tmp[N];

int n, m, k;

void submit(int a[], int n)
{
	putchar('?');
	for (int i=0; i<n; ++i)
		printf(" %d", a[i]);
	puts("");
	fflush(stdout);
}

pair<int, int> read()
{
	int x, y;
	scanf("%d%d", &x, &y);
	return make_pair(x, y);
}

void prepare(int a[], int n, int ex)
{
	int m = 0;
	for (int i=1; i<=n+1; ++i)
	{
		if (i == ex) continue;
		a[m++] = i;
	}
}

int main(int argc, char const *argv[])
{
	cin >> n >> k;
	for (int i=1; i<=k+1; ++i)
	{
		prepare(tmp, k+1, i);
		submit(tmp, k);
		auto p = read();
		outcome[i] = p.second;
	}

	int minv = 0x7fffffff, maxv = 0;
	for (int i=1; i<=k+1; ++i)
	{
		minv = min(minv, outcome[i]);
		maxv = max(maxv, outcome[i]);
	}
	int ans = 0;
	for (int i=1; i<=k+1; ++i)
	{
		if (minv == outcome[i]) ++ans;
	}
	printf("! %d\n", k+1-ans);
	return 0;
}